#ifndef RENDERGOBJECT_H
#define RENDERGOBJECT_H

#include <d3d9.h>
#include <d3dx9.h>

#include "Camera.h"
#include "Material.h"
#include "Mesh.h"
#include "../Utility/Misc/Timer.h"

class RenderGObject
{
public:
	enum GOBJECT_PROPERTIES {STATIC_MESH = 1, DIFFUSE_MAP = 2, NORMAL_MAP = 4, SPECULAR_MAP = 8};

	RenderGObject();
	~RenderGObject();
	RenderGObject(RenderGObject& _ref);

	void LoadObject(const char* const _filePath);
	void CreateBox(float _xScale, float _yScale, float _zScale);
	void CreatePlane(float _xScale, float _yScale, float _zScale);
	void RenderObject();

	Material& GetMaterial(){ return material; }
	Mesh& GetMesh(){ return mesh; }
private:

	void RenderStaticColor();

	void RenderStaticDiffuse();

	void (RenderGObject::*Render)(void);

	Material material;
	Mesh mesh;

	unsigned char properties;
};

#endif